--- title: "5、日期问题" created: 2025-11-28 tags: - 算法 --- # 5、日期问题 ## 题目 [日期问题](https://www.lanqiao.cn/paper/3854/problem/103/) ![[image-b9c04916.png]] ## 思路分析 日期问题 上来一套组合拳 枚举范围内的每个日期 检查是否存在合法方案 ## 代码实现 ```cpp #include using namespace std; int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; bool is_leap(int y){ return y%100 && y%4==0 || y%400==0; } int getdays(int y,int m){ return days[m]+(m==2 && is_leap(y)); } void nextday(int &y,int &m,int &d){ d++; if(d>getdays(y,m)){ d=1; m++; if(m>12){ m=1; y++; } } } int main() { int one,two,three; scanf("%d/%d/%d",&one,&two,&three); int cury=1960,curm=1,curd=1; while (cury < 2060) { if(cury%100==one && curm==two && curd==three //yymmdd || cury%100==three && curm==one && curd==two //mmddyy || cury%100==three && curm==two && curd==one //ddmmyy ){ printf("%d-%02d-%02d\n",cury,curm,curd); } nextday(cury,curm,curd); } return 0; } ``` ## 同类题型 ## 视频讲解 --- ⬅️ [[2-Learning/02-算法/03-刷题理模型/历年真题 模考特训/第八届 c++ B组 省赛/4、方格分割|4、方格分割]] 🏠 [[00-刷题理模型]] ➡️ [[6、包子凑数|6、包子凑数]]